package cn.xn.hrms.domain.service;

import cn.xn.hrms.api.dto.res.UserDTO;
import cn.xn.hrms.api.dto.res.UserRoleDTO;
import cn.xn.hrms.api.dto.req.UserReqDTO;
import cn.xn.hrms.infrastructure.dataobject.UserDO;
import cn.xn.hrms.api.dto.req.UserRoleReqDTO;
import com.github.pagehelper.PageInfo;

import java.util.Collection;
import java.util.List;

/**
 * @author ysz
 */
public interface UserService {

    UserDTO findByUsername(String username);

    UserDTO find(int id);

    PageInfo<UserDO> findList(int pageNum, int pageSize, String name);

    void deleteByIdIn(Collection<Integer> idList);

    void insert(UserDTO userDTO);

    void updateById(UserDTO userDTO);

    void updatePassword(String oldPassword, String newPassword);

    void saveRoles(UserRoleReqDTO userRoleReqDTO);

    List<UserRoleDTO> getUserRoles(Long userId);

    String userLogin(UserReqDTO userReqDTO);

    void update(Integer id, UserReqDTO us);

    void create(UserReqDTO us);
}
